/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jsf;

import com.client.domain.TypeUtilisateur;
import com.client.domain.Utilisateur;
import com.librairie.UtilisateurManagerRemote;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author Julien
 */
@ManagedBean
@SessionScoped
public class LoginBean {  
    
  @EJB
  private UtilisateurManagerRemote UtilisateurManager;
        private String username;  
         private String password; 
        private String feedbackMessage;
        private String sessionOk;
        boolean exists ;
        private List<Utilisateur> livreList;
        private Utilisateur user;
        
        
    public LoginBean(){
        
    }

    public boolean isExists() {
        return exists;
    }

    public Utilisateur getUser() {
        return user;
    }

    public void setUser(Utilisateur user) {
        this.user = user;
    }

   

    public void setExists(boolean exists) {
        this.exists = exists;
    }

          
          
    public String getSessionOk() {
        return sessionOk;
    }

    public void setSessionOk(String SessionOk) {
        this.sessionOk = SessionOk;
    }
          

    public String getFeedbackMessage() {
        return feedbackMessage;
    }

    public void setFeedbackMessage(String feedbackMessage) {
        this.feedbackMessage = feedbackMessage;
    } 
      
    public String getUsername() {  
        return username;  
    }  
  
    public void setUsername(String username) {  
        this.username = username;  
    }  
  
    public String getPassword() {  
        return password;  
    }  
  
    public void setPassword(String password) {  
        this.password = password;  
    }  
  
 public boolean deconnection () {
//          closeSession();
     return exists = false;
     
 }

      public boolean authenticate (){
        exists = UtilisateurManager.authentification(username, password);
        return exists;
    }
          
      
      public Utilisateur getauthentif(){
          
          if (exists==true) {
            List<Utilisateur> listUser = UtilisateurManager.recupUserList(username);
            this.user = listUser.get(0);
          }
          return this.user;
      }
      
      
      
         public String getAuthenticatedUserName() {
             
        if (exists==true) {
            Utilisateur user;
            List<Utilisateur> listUser = UtilisateurManager.recupUserList(username);
            user=listUser.get(0);
            
            return user.getPrenom();
        } 
        else {
            return "NONE";
        }
       }
       public TypeUtilisateur getAuthenticatedUserType() {
        if (exists==true) {
            Utilisateur user;
            List<Utilisateur> listUser = UtilisateurManager.recupUserList(username);
            user=listUser.get(0);
            
            return user.getType();
        } else {
            return null;
        }
       }
       
       public List<Utilisateur> getAuthenticatedUser() {
        if (exists==true) {
            List<Utilisateur> listUser = UtilisateurManager.recupUserList(username);
            
            
            return listUser;
        } else {
            return null;
        }
       }
         
}
    
      
      
      
//      private void closeSession(){
//       // on récupère la session http et on l'invalide - utilisation de FacesContext
//         HttpSession currentSession=(HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
//       currentSession.invalidate();
//    }
